package es.nadalgoyo.frikiquest.action;

import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import es.nadalgoyo.frikiquest.bbdd.tablas.TablaTemas;
import es.nadalgoyo.frikiquest.util.Util;
import es.nadalgoyo.frikiquest.vo.TemaVO;
import es.nadalgoyo.frikiquest.vo.parcelable.TemaParcelable;
import es.sergionadal.mvc.action.exception.ActionException;
import es.sergionadal.mvc.dispatcher.AbstractDispatcher;

public class ActionTema extends Action {

	public static final String TEMA = "0";

	public ActionTema(AbstractDispatcher dispatcher) {
		super(dispatcher);
	}

	@Override
	protected Bundle getBundle() throws ActionException {
		Bundle bundle = new Bundle();
		SQLiteDatabase db = getDatabase();
		TablaTemas temas = new TablaTemas();

		try {
			TemaVO tema = (TemaVO) Util.getRandom(Util.getRandomList(temas
					.getTemaConcurrencia(db)));

			bundle.putParcelable(TEMA, new TemaParcelable(tema.getNombre(),
					tema.getId()));

		} catch (Exception e) {
			e.printStackTrace();
			throw new ActionException(e.getMessage());
		} finally {
			if (db != null) {
				if (db.inTransaction())
					db.endTransaction();
				db.close();
			}
		}

		return bundle;
	}

}
